#!/bin/sh
#
#

# PROVIDE: msconvd
# REQUIRE: DAEMON FILESYSTEMS
# KEYWORD: nojail shutdown

. /etc/rc.subr

name="msconvd"
desc="Mouse protocol conversion daemon"
command="/usr/sbin/${name}"
start_cmd="msconvd_start"
pidprefix="/var/run/msconvd"
load_rc_config $name

: ${msconvd_enable="NO"}
: ${msconvd_type="auto"}

# doesn't make sense to run in a svcj: nojail keyword
# XXX: How does msconvd communiacte with the kernel?
# XXX: Does the kernel prevent this communcation in jails?
msconvd_svcj="NO"

# Set the pid file and variable name. The second argument, if it exists, is
# expected to be the mouse device.
#
if [ -n "$2" ]; then
	eval msconvd_$2_enable=\${msconvd_$2_enable-${msconvd_enable}}
	rcvar="msconvd_$2_enable"
	pidfile="${pidprefix}.$2.pid"
else
	for ms in ${msconvd_ports}; do
		/etc/rc.d/msconvd $1 ${ms}
	done
	exit 0
fi

msconvd_start()
{
	local ms myflags myport mytype

	# Set the mouse device and get any related variables. If
	# a msconvd device has been specified on the commandline, then
	# rc.conf(5) variables defined for that device take precedence
	# over the generic msconvd_* variables. The only exception is
	# the msconvd_port variable, which if not defined sets it to
	# the passed in device name.
	#
	ms=$1
	eval myflags=\${msconvd_${ms}_flags-$msconvd_flags}
	eval myport=\${msconvd_${ms}_port-/dev/${ms}}
	eval mytype=\${msconvd_${ms}_type-$msconvd_type}

	startmsg -n "Starting ${ms} ${name}"
	${command} ${myflags} -p ${myport} -t ${mytype} -I ${pidfile}
	startmsg '.'
}

run_rc_command $*
